{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn import svm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 载入数据\n",
    "data = np.genfromtxt(\"LR-testSet2.txt\", delimiter=\",\")\n",
    "x_data = data[:,:-1]\n",
    "y_data = data[:,-1]\n",
    "    \n",
    "def plot():\n",
    "    x0 = []\n",
    "    x1 = []\n",
    "    y0 = []\n",
    "    y1 = []\n",
    "    # 切分不同类别的数据\n",
    "    for i in range(len(x_data)):\n",
    "        if y_data[i]==0:\n",
    "            x0.append(x_data[i,0])\n",
    "            y0.append(x_data[i,1])\n",
    "        else:\n",
    "            x1.append(x_data[i,0])\n",
    "            y1.append(x_data[i,1])\n",
    "\n",
    "    # 画图\n",
    "    scatter0 = plt.scatter(x0, y0, c='b', marker='o')\n",
    "    scatter1 = plt.scatter(x1, y1, c='r', marker='x')\n",
    "    #画图例\n",
    "    plt.legend(handles=[scatter0,scatter1],labels=['label0','label1'],loc='best')\n",
    "    \n",
    "plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SVC(C=2, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma=1, kernel='rbf',\n",
       "  max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
       "  tol=0.001, verbose=False)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# fit the model\n",
    "# C参数默认1，惩罚函数的C系数和gamma参数相关于核函数，可以,C=2,gamma=1\n",
    "model = svm.SVC(kernel='rbf',C=2,gamma=1)  # 'linear', 'poly', 'rbf', 'sigmoid'\n",
    "model.fit(x_data, y_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.847457627118644"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.score(x_data,y_data)  # 识别准确率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 获取数据值所在的范围\n",
    "x_min, x_max = x_data[:, 0].min() - 1, x_data[:, 0].max() + 1\n",
    "y_min, y_max = x_data[:, 1].min() - 1, x_data[:, 1].max() + 1\n",
    "\n",
    "# 生成网格矩阵\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),\n",
    "                     np.arange(y_min, y_max, 0.02))\n",
    "\n",
    "z = model.predict(np.c_[xx.ravel(), yy.ravel()])# ravel与flatten类似，多维数据转一维。flatten不会改变原始数据，ravel会改变原始数据\n",
    "z = z.reshape(xx.shape)\n",
    "\n",
    "# 等高线图\n",
    "cs = plt.contourf(xx, yy, z)\n",
    "plot() \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
